'''
给定一个 haystack 字符串和一个 needle 字符串，在 haystack 字符串中找出 needle
字符串出现的第一个位置 (从0开始)。如果不存在，则返回  -1。
'''
class Solution:
    def search(self, nums: List[int], target: int) -> int:
        if not nums:
            return -1
        left = 0
        right = len(nums) - 1
        while left <= right:
            mid = (left + right) // 2
            if nums[mid] == target:
                return mid

            # 左半段有序 >= 因为只有两个数mid=left如果不这样的话就不回去查看left从而得到错误的解
            #  nums[M] > nums[R] 也可以
            if nums[mid] >= nums[left]:
                if nums[left] <= target <= nums[mid]:
                    right = mid - 1
                else:
                    left = mid + 1
            # 右半段有序
            else:
                if nums[mid] <= target <= nums[right]:
                    left = mid + 1
                else:
                    right = mid - 1
        return -1
'''
用needle来切片，如果切片之后的长度是1，那么说明没有这个数，返回-1
如果长度不是1，返回第一段的长度就可以了
'''
class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        if needle == "": return 0
        r = haystack.split(needle)
        if len(r) == 1:
            return -1
        else:
            return len(r[0])